//
//  Readme.h
//  Weibo
//
//  Created by itteacher on 2017/7/23.
//  Copyright © 2017年 itteacher. All rights reserved.
//

//  -------------------第四天------------------------
//  OAuth: o是open，auth是 授权，开放安全的授权协议
//  1.像第三方登录一般使用的OAuth授权的方式去的做， app无法获取登录的用户名和密码，用户名和密码是有第三方（微博，微信）获取，这样就能体验OAuth授权的安全特点
//  2.用户登录成功以后在用户授权的情况下，获取（需要令牌）第三方（微博，微信，qq）的资源数据（不包含隐私数据）
//  3.指定令牌只能访问指定的资源服务器


//  OAuth授权流程

//  1. 加载第三方（微博）登录界面
//  2. 用户登录成功后在用户授权的情况下获取授权码
//  3. 通过授权码获取第三方令牌（微博）
//  4. 通过令牌访问第三方（微博）资源数据

//  -------------------第七天------------------------
/*
    单张图片缓存显示流程
    1. 判断微博数据原创微博和转发微博的配图个数是否等于1
    2. 如果配图个数等于1，那么需要下载单张图片， 需要异步下载
    3. 需要等到所有的单张图片都下载完成以后，在回调重新加载数据， 需要使用（调度组）
    4. 加载配图数据的时候，判断配图个数是否等于1， 如果等于1获取本地单张图片的大小作为配图的大小
 
 */


/*
    微博时间处理逻辑
    判断时间是否是今年
        是否是今天
            判断是否是1分钟之前
                刚刚
            判断是否是1小时之前
                xx分钟前
            其它
                xx小时前
        是否是昨天
            昨天 10:11
        其它
            07-20 15:20
    不是今年
        2016-12-09 10:12
 
 */

//  -------------------第十天------------------------
/*
    表情键盘的数据结构
    1. 一个cell显示20个表情按钮，那么对于的数据源是 -> [model]
    2. 每种表情显示多页，每页对于的数据源是一个[Model], 每种表情对于的数据源 [ [model],  [model],  [model], xxx]
    3. collectionView需要知道有几组表情，每组表示对于的是二维数组，现在有四种表情，需要把每种表情在放到一个数组里面，表情视图需要的数据源就是 [[ [model],  [model],  [model], xxx], [ [model],  [model],  [model], xxx], [ [model],  [model],  [model], xxx], [ [model],  [model],  [model], xxx]]
 
 */


//  -------------------第十二天------------------------

//  使用YYText的步骤
//  pod 'YYText'
//  把UILabel改成YYLabel
//  遇到问题：
/*
    1. 文字没有换行    ->label.preferredMaxLayoutWidth = ScreenWidth - 2 * HomeCellMargin
    2. 富文本颜色不对 ->attributedStr.addAttributes([NSFontAttributeName: UIFont.systemFont(ofSize: fontSize), NSForegroundColorAttributeName: color], range: NSMakeRange(0, attributedStr.length))
    3. 如果使用自己的图片转富文本那么图片表情显示不出来
        ->使用YYText提供图片转富文本的方法 ->let emoticonAttributedStr = NSAttributedString.yy_attachmentString(withEmojiImage: image, fontSize: fontSize)!
 */

//  缓存微博首页表结构的分析


//  1. 微博id -> 主键
//  2. 微博内容(微博字典二进制数据)
//  3. 用户id  -> 区分不同用户的微博数据， 提示： 有可能不同用户关注同一个用户（用户A，用户B,都关注了用户C），解决办法把用户id也设置为主键
//  4. 缓存时间 -> 在指定时间内清除数据

